{{tag>matériel joystick tutoriel}}

====== Dualshock : utiliser sa manette de PlayStation 3 ou 4 sur Ubuntu ======
Cette page concerne l'utilisation des manettes Sixaxis et Dualshock 3 pour PlayStation 3 et Dualshock 4 pour PlayStation 4 sur Ubuntu.

<note tip>De nombreux jeux ne peuvent être joués qu'à la manette de Xbox 360 (notamment ceux disponible sur [[:steam|Steam]]), ainsi les guides ci-dessous se concentrent sur l'utilisation de la Dualshock/Sixaxis comme une manette de Xbox 360.</note>

===== Sixaxis et Dualshock 3 =====
<note>Son fonctionnement a été testé sur Ubuntu 12.10 et supérieurs.</note>

==== Utilisation en USB ====
  - [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>xboxdrv]]**
  - Branchez la manette en %%USB%%
  - Appuyez sur le bouton PlayStation de celle-ci
  - Ouvrez un [[:terminal]] et rentrez la [[:commande_shell|commande]] : <code>sudo xboxdrv --detach-kernel-driver</code>

Vous devriez alors voir les états de chaque touches et joysticks s'afficher dans le terminal. Vous pouvez utiliser l'option **<nowiki>--silent</nowiki>** pour les masquer.

=== Utilisation de plusieurs manettes ===
Vous pouvez utiliser une manette supplémentaire en utilisant le paramètre **<nowiki>-i</nowiki>** suivi de l'identifiant de la manette que vous souhaitez utiliser (la première étant 0, la deuxième 1, la troisième 2 et ainsi de suite). 
  - Activez la première manette comme décrit ci-dessus
  - Branchez la seconde manette
  - Ouvrez un nouveau [[:terminal]] et entrez la [[:commande_shell|commande]] suivante : <code>sudo xboxdrv --detach-kernel-drive -i 1</code>
  - Répétez les étapes 2 et 3 autant de fois qu'il y a de de manettes à utiliser, en prenant bien soin de modifier l'identifiant.
Vous pouvez bien entendu ajouter le paramètre **<nowiki>--silent</nowiki>** pour masquer les entrées des manettes.

<note>Théoriquement il est possible de connecter autant de manettes que supporté par un jeu. Cependant n'avons testé qu'avec deux manettes.</note>

=== Manettes ne fonctionnant par sous Ubuntu 14.04 LTS ===
Le [[:kernel|noyau]] Linux 3.13.0 d'Ubuntu 14.04 LTS rend les manettes de PlayStation 3 inutilisables en USB. Une mise à jour vers Ubuntu 14.04.2 et l'installation des paquets **[[apt>linux-image-generic-lst-utopic,linux-headers-generic-lst-utopic|linux-image-generic-lst-utopic et linux-headers-generic-lst-utopic]]** règlent le problème.


==== Utilisation en Bluetooth ====
<note>Pour le moment aucune méthode simple d'utilisation ne permet l'utilisation des Sixaxis et Dualshock 3 en Bluetooth tout en émulant une manette de Xbox 360.</note>

===== Dualshock 4 =====

Un driver pour la Dualshock 4 est [[https://github.com/chrippa/ds4drv|en cours de développement par la communauté]]. Ce driver supporte actuellement plusieurs manettes, le changement de couleur de la LED (en USB uniquement), l'utilisation du touchpad comme une souris et ne supporte pas encore les vibrations. 

<note>Son fonctionnement n'a été testé que sur Ubuntu 13.10 et 14.04 LTS avec la clé Bluetooth ASUS USB-BT211.</note>

==== Pré-requis ==== 
  - [[:python|Python]] 2.7 ou 3.3 et supérieurs
  - Les paquets **[[apt>python-setuptools]]** et **[[apt>bluez-utils]]**

==== Installation ====
  - [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] **[[apt>python-pip]]**, **[[apt>python-pyudev]]** et **[[apt>python-evdev]]** puis depuis un [[:terminal]] en entrant les [[:commande_shell|commandes]] suivantes :
  - Installez ds4drv avec pip : <code>sudo pip install ds4drv</code>
  - Téléchargez ce fichier de règles [[[:udev|udev]] : <code>sudo wget -O /etc/udev/rules.d/50-ds4drv.rules https://raw.githubusercontent.com/chrippa/ds4drv/master/udev/50-ds4drv.rules</code>
  - Rechargez les règles udev : <code>sudo udevadm control --reload-rules
sudo udevadm trigger</code>

==== Utilisation en USB ====
  - Branchez votre Dualshock 4 en %%USB%%
  - Entrez dans un [[:terminal]] la [[:commande_shell|commande]] suivante : <code>ds4drv --hidraw --emulate-xboxdrv</code>

==== Utilisation en Bluetooth ====
<note important>[[https://github.com/chrippa/ds4drv/wiki/Bluetooth%20dongle%20compatibility|Les cartes et clés Bluetooth 2.0 posent problème]], préférez l'utilisation d'un équipement compatible Bluetooth 2.1 ou supérieur.</note>
  - Connectez ou activez votre équipement Bluetooth
  - Maintenez les boutons PlayStation et Share de votre Dualshock 4 appuyés jusqu'à ce que la %%LED%% clignote rapidement en blanc
  - Entrez dans un [[:terminal]] la [[:commande_shell|commande]] suivante : <code>ds4drv --emulate-xboxdrv</code>

<note tip>Si jamais cela ne venait pas à fonctionner, connectez votre Dualshock 4 en %%USB%% (tout en gardant l'équipement Bluetooth activé) et depuis un [[:terminal]], utilisez la [[:commande_shell|commande]] suivante : <code>ds4drv --hidraw --emulate-xboxdrv</code></note>

<note>Il se peut que votre Dualshock 4 ne s'éteigne pas après avoir été débranchée. Dans ce cas, appuyez sur le bouton PlayStation jusqu'à ce que la LED s'éteigne.</note>

==== Changer la couleur de la barre lumineuse ====
Vous pouvez changer la couleur de la barre lumineuse de votre Dualshock 4 avec le paramètre **<nowiki>--led</nowiki>**, suivi du code hexadécimal de la couleur voulue :
<code>ds4drv --emulate-xboxdrv --led ff0000</code>
Par exemple, **ff0000** l'allumera en rouge, **00ff00** en vert, **0000ff** en bleu, **ffffff** en blanc et **000000** l'éteindra.

==== Connecter plusieurs manettes ====
Il se peut que vous souhaitiez jouer à plusieurs sur le même PC. Pour appairer plusieurs manettes, il suffit d'utiliser le paramètre **<nowiki>--next-controller</nowiki>** suivi des paramètres de la manette supplémentaire.

Par exemple, pour utiliser deux manettes :
  - Connectez ou activez votre équipement Bluetooth
  - Maintenez les boutons PlayStation et Share de vos Dualshock 4 appuyés jusqu'à ce que les LED clignotent rapidement en blanc
  - Entrez dans un [[:terminal]] la [[:commande_shell|commande]] suivante : <code>ds4drv --emulate-xboxdrv --led ff0000 --next-controller --emulate-xboxdrv --led 00ff00</code>

Le paramètre **<nowiki>--led</nowiki>** est optionnel, mais cela permet de distinguer les manettes, ce qui peut s'avérer pratique.

<note>Théoriquement il est possible de connecter autant de manettes que supporté par un jeu. Cependant n'avons testé qu'avec deux manettes.</note>

==== Erreur Transport endpoint is not connected ====
Il se peut que vous rencontriez l'erreur suivante en voulant utiliser une Dualshock 4 en Bluetooth :
<code>[info][bluetooth] Scanning for devices
[info][bluetooth] Found device XX:XX:XX:XX:XX:XX
[error][bluetooth] Unable to connect to detected device: Failed to set operational mode: [Errno 107] Transport endpoint is not connected</code>
Pour régler ce soucis, arrêtez le programme en appuyant sur **Ctrl + C** ouvrez les paramètres Bluetooth et supprimez les entrées nommées "Wireless Controller".

Ceci devrait régler le problème et vous pouvez essayer à nouveau d'utiliser votre ou vos manettes.

----
//Contribution : [[utilisateurs:BlackEco]]//